#ifndef GRAPHICS_MESH_H
#define GRAPHICS_MESH_H


#include <graphics/node.h>
#include <render/shader.h>

namespace yam3d
{


namespace graphics
{
    class VertexBuffer;
    class IndexBuffer;
    class Camera;


    class Mesh : public Node
    {
    public:
        Mesh( VertexBuffer* vb, IndexBuffer* ib );
        ~Mesh();

        VertexBuffer* getVertexBuffer() const;
        IndexBuffer* getIndexBuffer() const;

        void renderGeometryWithShader( render::ShaderProgram* program, Camera* camera );

    private:
        VertexBuffer* m_vb;
        IndexBuffer* m_ib;

        Mesh(const Mesh&);
        Mesh& operator=(const Mesh&);
    };

}
}

#endif // GRAPHICS_MESH_H
